Practical Considerations for Non - Blocking Concurrent

نویسنده

  • Brian N. Bershad
چکیده

An important class of concurrent objects are those that are non-blocking, that is, whose operations are not contained within mutually exclusive critical sections. A non-blocking object can be accessed by many threads at a time, yet update protocols based on atomic Compare-And-Swap operations can be used to guarantee the object's consistency. In this paper we take a practical look at the Compare-And-Swap operation in the context of contemporary bus-based shared memory multiprocessors, although our results generalize to distributed shared memory multiprocessors. We rst describe an operating system-based solution that permits the construction of a non-blocking Compare-And-Swap function on architectures that only support more primitive atomic primitives such as Test-And-Set or Atomic Exchange. We then evaluate several locking strategies that can be used to synthesize a Compare-And-Swap operation, and show that the common techniques for reducing synchronization overhead in the presence of contention are inappropriate when used as the basis for non-blocking synchronization. We then describe a simple synchronization strategy that has good performance because it avoids much of the synchronization overhead that normally occurs when there is contention.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Fast and Lock-Free Concurrent Priority Queues for Multi-Thread Systems

We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the overall perform...

متن کامل

Chapter 6 Scalable and Lock - Free Concurrent Dictionaries 1

We present an efficient and practical lock-free implementation of a concurrent dictionary that is suitable for both fully concurrent (large multiprocessor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent dictionaries are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the system’s overall perfor...

متن کامل

Chapter 5 Fast and Lock - Free Concurrent Priority Queues for Multi - Thread Systems 1

We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multiprocessor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the system’s overall...

متن کامل

Fast and Lock - Free Concurrent Priority Queues for Multi - Thread Systems 1 Håkan

We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the system’s overal...

متن کامل

Non-Blocking Concurrent Imperative Programming with Session Types

Concurrent C0 is an imperative programming language in the C family with session-typed messagepassing concurrency. The previously proposed semantics implements asynchronous (non-blocking) output; we extend it here with non-blocking input. A key idea is to postpone message reception as much as possible by interpreting receive commands as a request for a message. We implemented our ideas as a tra...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1993